package net.zjitc.android2019.ch2activity;

import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import net.zjitc.android2019.R;

import java.text.DecimalFormat;

/**
 * 1、关联布局文件
 * 2、关联控件
 * 3、按钮点击事件
 *    按钮加监听（绑定）
 */
public class BMIActivity extends AppCompatActivity {
    private EditText ed_height,ed_weight;
    private Button btn_computer,btn_about,btn_exit;
    private TextView tv_result;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bmi);

        /* 类似于print,Logcat能够看到*/
        Log.v("pyt","OnCreate方法");

        /* 初始化方法：关联控件*/
        init();

        View.OnClickListener clickListener=new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                /* View v 这个参数表示点击的是哪个控件*/
                switch (v.getId()){
                    case R.id.ch2_bmi_btn_computer:
                        computer();
                        break;
                    case R.id.ch2_bmi_btn_about:
                        about();
                        break;
                    case R.id.ch2_bmi_btn_exit:
                        exit();
                        break;
                }
            }
        };

        btn_computer.setOnClickListener(clickListener);
        btn_about.setOnClickListener(clickListener);
        btn_exit.setOnClickListener(clickListener);

    }


    @Override
    protected void onStart() {
        super.onStart();
        Log.v("pyt","onStart方法");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.v("pyt","onResume方法");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.v("pyt","onPause方法");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.v("pyt","onStop方法");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.v("pyt","onDestory方法");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.v("pyt","onReStart方法");
    }

    /**
     * 退出按钮的操作:
     * 弹出对话框
     */
    private void exit() {
        DialogInterface.OnClickListener listener=new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                /* 关闭当前Activity*/
                BMIActivity.this.finish();
            }
        };
        // 创建对话框步骤：
        // 1、创建一个AlertDialog对象
        // 2、设置对话框标题
        // 3、设置对话框显示的内容
        // 4、添加对话框的“确定”、“取消”按钮
        // 5、显示对话框
        AlertDialog.Builder dialog=new AlertDialog.Builder(BMIActivity.this);
        dialog.setTitle("退出？");
        dialog.setMessage("真的要退出BMI系统吗？");
        dialog.setPositiveButton("确定",listener);
        dialog.setNegativeButton("取消",null);

        dialog.show();

    }

    /**
     * 关于按钮的操作:
     * 跳转到另一个Activity
     */
    private void about() {
        /* 从当前Activity跳转到AboutActivity */
        Intent intent=new Intent(BMIActivity.this,AboutActivity.class);
        /* 传递数据*/
        intent.putExtra("test","aaa");

        startActivity(intent);
    }

    /**
     * 计算按钮相关操作
     */
    private void computer() {
        /* 先获取输入框的内容，再根据公式计算BMI，根据BMI的值判断过轻或正常等，最后要显示*/
        String s_height=ed_height.getText().toString();
        double height=Double.parseDouble(s_height);
        height=height/100;
        String s_weight=ed_weight.getText().toString();
        double weight=Double.parseDouble(s_weight);
        double result=weight/height/height;
        /*结果要保留2位小数*/
        DecimalFormat f1=new DecimalFormat("0.00");
        String s="您的体重指数为："+f1.format(result)+"\n理想指数为20-22\n";
        if(result<18.5){
            s+="过轻";
        }else if(result<23){
            s+="正常";
        }else if(result<25){
            s+="过重";
        }else if(result<30){
            s+="肥胖";
        }else{
            s+="痴肥";
        }
        tv_result.setText(s);
    }

    private void init() {
        ed_height=findViewById(R.id.ch2_bmi_ed_height);
        ed_weight=findViewById(R.id.ch2_bmi_ed_weight);
        btn_computer=findViewById(R.id.ch2_bmi_btn_computer);
        btn_about=findViewById(R.id.ch2_bmi_btn_about);
        btn_exit=findViewById(R.id.ch2_bmi_btn_exit);
        tv_result=findViewById(R.id.ch2_bmi_tv_result);
    }



}
